# 正则
import re
# match 从字符串开头查找,如果开头查不到则返回None， 并且只匹配一次 ，成功则返回Match对象
s = "32.34 abcd 5.4"
pattern = "\\d+\\.\\d+"
result = re.match(pattern,s, re.I)
print(result)
print('匹配到的结果：',result.group()) #匹配到的字符串
print('匹配的开始位置：',result.start()) #在哪开始查找的
print('匹配的结束位置：',result.end()) #在哪结束查找的，不包括最后一个
print('匹配的范围：',result.span()) #查找区间
print('匹配的字符串：',result.string) #查找的字符串


s2 = 'I love you 3.14'
match2 = re.match(pattern, s2, re.I)
print(match2)


# search 用于整个字符串的匹配，只匹配一次，匹配失败则返回None，成功则返回一个Match对象
print(re.search(pattern, s2, re.I),'==')
print(re.search(pattern, s, re.I),'==')


# findall 查找所有匹配项，结果返回一个列表
print(re.findall(pattern, s, re.I)) #['32.34', '5.4']
print(re.findall(pattern, s2, re.I)) #[3.14]


# sub 匹配字符串并替换
p='报警|扒手|加入' #竖线必须为英文的
s3 = '今天是个好天气，我们要报警吗？有扒手在大街，不然我们就加入了啊'
news = re.sub(p,'XXX',s3)
print(news)


# split 分割字符串
p2 = '[&|?|*]'
s4 = 'http://www.baidu.com?a=10&b=20*c=94'
print(re.split(p2,s4))